LibreOffice is a productivity suite that is compatible with other major
office suites, and available on a variety of platforms. It is free
software and therefore free to download, use and distribute.

This script builds a Slackware package from the official source
distributed by The Document Foundation.

The provided swlodc.sh script can test if the auto detected dependency
variables in the sSlackBuild are still sane compared to the current
build environment.

If the $JAVA_HOME environment variable is set according to the
instructons at https://docs.slackware.com/howtos:software:java then
java will be used. Otherwise LibreOffice will build without java.

To build libreoffice without java even if $JAVA_HOME is set then use:
  JAVA="no" ./libreoffice.SlackBuild

To disable building with all system libraries and use internal libaries
provided by LibreOffice instead use:
  SYSTEM_LIBS="no" ./libreoffice.SlackBuild
or to disable libaries not included in the Slackware main tree use:
  SBO_LIBS="no" ./libreoffice.SlackBuild

LibreOffice uses several gb of space to compile, it is recommended to
make sure the $TMP directory has enough space before proceeding. It can
be set with:
  TMP="/tmp/SBO" ./libreoffice.SlackBuild

If the additional source files are not downloaded then LibreOffice will
download any sources it requires from the upstream LibreOffice server.
This will require a network connection during the build process.

LibreOffice can be installed to /opt/libreoffice instead of /usr with:
  OPT="yes" ./libreoffice.SlackBuild

By default LibreOffice will compile with one job as compiling can be
intensive on the cpu. To set the number of make jobs higher use:
  NUMBJOBS="2" ./libreoffice.SlackBuild

LibreOffice will try compile with ccache if available, to effectively
use it the cache size has to be at least 8 gb without debug symbols.
With debug symbols around 32 gb of space will be required. To disable
using the ccache use:
  CCACHE="no" ./libreoffice.SlackBuild

To build the myspell dictionaries use:
  DICT="yes" ./libreoffice.SlackBuild

To build the local help, HTML local help, or the HTML online help use:
  HELP="yes" ./libreoffice.SlackBuild
or
  HELP="html" ./libreoffice.SlackBuild
or
  HELP="online" ./libreoffice.SlackBuild

LibreOffice will use en-US, to install additional languages use:
  LANGUAGES="es sv da ja sk" ./libreoffice.SlackBuild
or
  LANGUAGES="all" ./libreoffice.SlackBuild

The supported language codes can be found here:
  https://wiki.documentfoundation.org/Language_support_of_LibreOffice

Possible themes are:
  breeze, breeze_dark, breeze_dark_svg, breeze_svg, colibre,
  colibre_svg, elementary, elementary_svg, karasa_jaga, karasa_jaga_svg,
  sifr, sifr_dark, sifr_dark_svg, sif_svg, sukapura, sukapura_svg

Themes can be chosen with:
  THEME="breeze colibre" ./libreoffice.SlackBuild

To disable building python3 support use:
  PYTHON="no" ./libreoffice.SlackBuild

To disable building the gstreamer 1.0 avmedia backend use:
  GSTREAMER1="no" ./libreoffice.SlackBuild

Openssl will be the default TLS/SSL and cryptographic implementation.
Using openssl will not restrict usage of nss while choosing nss will
restrict openssl. This does not apply to for depending libraries like
"neon". To choose the TLS/SSL implementation use:
  TLS="openssl" ./libreoffice.SlackBuild
or
  TLS="nss" ./libreoffice.SlackBuild

The defualt webdav implementation will be neon and can be disabled with:
 NEON="no" ./libreoffice.SlackBuild

Alternatively libreoffice can use serf or disable webdav with:
  WEB="serf" ./libreoffice.SlackBuild
or
  WEB="no" ./libreoffice.Slackbuild

To build the office development kit (ODK) use:
  ODK="yes" ./libreoffice.SlackBuild

If the odk was built doxygen documentation can be enabled with:
  DOXYGEN="yes" ./libreoffice.SlackBuild

To build with debug symbols use:
  DEBUG="yes" ./libreoffice.SlackBuild
or
  DEBUG="dbg" ./libreoffice.SlackBuild
or
  DEBUG="symbols" ./libreoffice.Slackbuild

This will enable the debugging information or include debugging symbols
while preserving optimizations. When using "deb" it will make the build
ABI incompatible with builds not using "dbg". Build with debug support
will take up a lot of space.

To perform additional checks during building use:
  COMPILER="yes" ./libreoffice.SlackBuild

This will be enabled automatically by using "dbg".

To make SAL_INFO and SAL_WARN calls do something even in a
non-debug build use:
  SAL="yes" ./libreoffice.SlackBuild

To disable CVE tests from being executed use:
  CVE="no" ./libreoffice.SlackBuild

To turn -werror warnings into errors use:
  WERROR="yes" ./libreoffice.SlackBuild

To statically disable some runtime optimizations like rtl/alloc.h or the
JVM JIT use:
  RUNTIME="no" ./libreoffice.SlackBuild

Introspection can be enabled or disabled with:
  INTROSPECTION="no" ./libreoffice.SlackBuild
or
  INTROSPECTION="auto" ./libreoffice.SlackBuild
or
  INTROSPECTION="yes" ./libreoffice.SlackBuild

Precompiled header support for C++ can be set:
  PCH="yes" ./libreoffice.SlackBuild
or
  PCH="no" ./libreoffice.SlackBuild
or
  PCH="system" ./libreoffice.SlackBuild
or
  PCH="base" ./libreoffice.SlackBuild
or
  PCH="normal" ./libreoffice.SlackBuild
or
  PCH="full" ./libreoffice.SlackBuild

By default this script will install a relatively default build with
upstream settings. many optional flags can be set by passing variables
to the script (VAR="yes/no" ./libreoffice.SlackBuild):
  AVAHI="yes" - requires avahi
  BREAKPAD="yes" - enable breakpad for crash reporting
  BUNDLE="yes" - bundle the MariaDB Connector/LibreOffice extension when
                 using MariaDB/MYSQL system libraries
  CT2N="yes" - enable the ConvertTextToNumber extension
  EOT="yes" - enable support for Embedded OpenType fonts
  EPM="yes" - build epm
  FORMULA="yes" - enable formula logger for logging formula calculation
                  flow in Calc
  FUZZERS="yes" - enable building libfuzzer targets for fuzz testing
  KDE5="yes" - use the Qt5/KF5 vclplug
  KDE5GTK3="yes" - use the Gtk3 vclplug with KDE5 file dialogs
  LANGUAGETOOL="yes" - enable the LanguageTool extension
  LTO="yes" - enable link-time for optimization for speed, slower
              compile (this may not work)
  MPL="yes" - only compile code which is MPL or more liberally licensed
  NLPSOLVER="yes" - enable the NLPSolver extension
  NUMBERTEXT="yes" - enable the Numbertext extension
  QT="yes" - enables the Qt5 vclplug
  SSL="yes" - Enable using OpenSSL as the implementation for rtl/cipher.h
              functionality, only when building without OPENSSL="no"
  VALGRIND="yes" - makes the Valgrind headers a hard requirement
  WIKI="yes" - enable the Wiki Publisher extension

Disable features:
  CANVAS="no" - disables building the Cairo Canvas
  CRASHDUMP="no" - disabled building dump.ini and dump-file with
                   BREAKPAD=yes
  CUPS="no" - disable building cups support
  COINMP="no" - disable building the CoinMP solver
  DBUS="no" - disable features that rely on dbus (Presentation mode and
              screensaver control)
  DCONF="no" - disable the dconf configuration backend (enabled by
               default where available)
  FIREBIRD="no" - disable buildin the Firebird-SDBC driver
  FONT="no" - do not include third-party fonts
  LARGEFILE="no" - omit support for large files
  LDAP="no" - disable LDAP support
  LIBNUMBER="no" disables the numbertext external library
  LOTUSWORDPRO="no" - disables building the Lotus Word Pro filter
  LPSOLVE="no" - disables building the lp solve solver
  LXML="no" - disables the python lxml
  GIO="no" - disables using the GIO support
  GTK3="no" - disable using the Gtk+ 3.0 vclplug
  GUI="no" - disable X11/Wayland support to reduce dependencies
  NEON="no" - disables neon and building of webdav binding
  OOENV="no" - disable ooenv for the instdir installation
  PDF="no" - disable building the PDF import feature
  PDFIUM="no" - disable building PDFium
  POPPLER="no" - disable building Poppler
  POSTGRESQL="no" - disable building the PostgreSQL-SDBC driver
  RANDR="no" - disable RandR support in the vcl project
  REPORT="no" - disable the Report Builder
  SDREMOTE="no" - disable the Impress remote control (i.e. the server
                  component)
  SDRBLUETOOTH="no" - disables building the sdremote with bluetooth
                      support, requires dbus
  SKIA="no" - Disable building Skia.
  XORG="no" - don't use the X Window System

Experimental features, use only if you know what you are doing.
  AVMEDIA="no" - disables displaying and inserting AV media in documents
  CHART="yes" - executes chart XShape tests
  DATABASE="no" - disables various database connectivity
  EXTENSION="no" - disables all add-on extension functionality
  ICECREAM="yes" - use the icecream distributed compiling tool (requires
                   icecream)
  LOADING="no" - disables any use of dynamic loading of code
  MERGELIB="yes" - enables linking of big, merged, library
  OPENSSL="no" - disables using libssl/libcrypto from OpenSSl, will use
                 GNUTLS or NSS instead
  SCRIPT="no" - disables BASIC, Java and Python
  VLC="yes" - enable building with the VLC avmedia backend (requires
              vlc)

Optional dependencies:
  CoinMP, cppunit, glm, libabw, libcdr, libcmis, libe-book, libeot,
  libepubgen, libetonyek, libexttextcat, libfreehand, liblangtag,
  libmspub, libmwaw, libnumbertext, liborcus, libpagemaker, libqxp,
  libstaroffice, libtommath, libwps, libzmf, lpsolve, lxml, mdds,
  mythes, postgresql, python3, QR-Code-generator, qt5, valgrind, ucpp

Optional dependencies which are not available for Slackware yet:
  altlinuxhyph, apache-commons, beanshell, firebird, gpgmepp,
  hsqldb, jfreereport, xmlsec-nss
